/**
 * @author Rudy Kaplan Depena (The University of Texas at Austin)
 */
package com.utaustin.mirankerlab.ultrawrap.compiler.components;

/** Constraint Interface is used to define different types of filter constraints */
public interface FilterConstraint {
	
	/**
	 * If constraint is in the form of a Relational Expression
	 * then set Operand1
	 */
	public void setOperand1(Component operand1);
	
	/**
	 * If constraint is in the form of a Relational Expression
	 * then give Operand1
	 * @return operand1
	 */
	public Component getOperand1();
	
	/**
	 * If constraint is in the form of a Relational Expression
	 * then set Operator
	 */
	public void setOperator(Component operator);
	
	/**
	 * If constraint is in the form of a Relational Expression
	 * then give Operator 
	 * @return operator
	 */
	public Component getOperator();
	
	/**
	 * If constraint is in the form of a Relational Expression
	 * then set Operand2
	 */
	public void setOperand2(Component operand2);
	
	/**
	 * If constraint is in the form of a Relational Expression
	 * then give Operand2
	 * @return
	 */
	public Component getOperand2();
	
	/**
	 * If constraint is in the form of a Relational Expression
	 * then operand1, operator, and operand2 is set
	 */
	public boolean isComplete();
	
}
